#include<iostream>
#include<string>
#include<jsoncpp/json/json.h>
typedef struct request
{
  int x;
  int y;
  char op;//"+-*/%"
}request_t;

int main()
{




    //序列化的过程
    // request_t req={10,20,'*'};
    // Json::Value root;//可以承装任何对象,json是一种kv式的序列化方案
    // root["datax"]=req.x;
    // root["datay"]=req.y;
    // root["operator"]=req.op;
    // //FastWriter,StyledWriter
    // Json::StyledWriter writer;
    // std::string json_string=writer.write(root);
    // std::cout<<json_string<<std::endl;
    // return 0;


    //反序列化
    std::string json_string=R"({"datax":10,"datay":20,"operator":42})";//R原生字符串,就不用转译了
    Json::Reader reader;
    Json::Value root;
    
    reader.parse(json_string,root);

    request_t req;
    req.x=root["detax"].asInt();
    req.y=root["datay"].asInt();
    //req.op=root["operator"].asUInt();
    req.op=(char)root["operator"].asInt();
    return 0;
}